package com.baiyang.server.service.article;


import com.alibaba.fastjson.JSONObject;
import com.baiyang.server.model.article.Article;
import com.baiyang.server.service.BaseService;
import com.baiyang.server.tools.Letter;

import java.util.List;
import java.util.Map;

public interface ArticleService extends BaseService<Article> {

    void insertArticle(Article article, Letter<String> letter);

    String getContent(String articleId);

    /**
     * 获取排行榜信息
     */
    List<JSONObject> getLeaderboard();

    /**
     * 获取推荐信息
     * @param i
     * @param userId
     */
    List<JSONObject> getFeatured(int i, String userId);

    /**
     * 获取最新章节信息
     * @param i
     */
    List<JSONObject> getArticle(int i);

    /**
     * typeId,pageOn,pageSize
     * 根据类型获取数据信息
     * @param object
     * @return
     */
    List<Article> getArticleByType(JSONObject object);

    /**
     * 根据作者ID获取作品信息
     * @param authorId
     * @return
     */
    List<Article> getArticleByAuthor(String authorId);

    void setDetail(Article article);


    /**
     * 通过id获取文章所有内容
     * @param article
     */
    Article getArticleById(Article article);

    /**修改
     * @param article
     * @param letter
     */
    void alter(Article article, Letter<String> letter);

    /**
     * 获取当日阅读量
     * @param article
     * @return
     */
    List<Map<String, Object>> getReadNum(Article article);

    /**
     * 根据条件获取最新作品信息
     * @param article
     * @return
     */
    Article getNewArticle(Article article);
}
